第一章 实操类 实用指令
1.1文件目录类
pwd
:查看当前所在文件
ls
:查看当前所在文件夹下内容
ls -a
:显示指定目录下所有子目录与文件,包含隐藏文件。
ls -l
:以列表方式显示文件的详细信息。
ls -h
:配合-l以人性化方式显示文件大小。
cd
[目录名]:切换文件夹
touch
[文件名]:如果文件不存在,新建文件
mkdir
[目录名]:创建目录
rmdir
[目录名]:删除空目录
rm
[文件名]:删除文件名
使用rm要小心因为删除后文件不可以恢复
选项 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归的删除目录下的文件的内容,删除文件夹时候,必须带此参数 |
cp
[文件名] 或 [目录名]
常用选型
-r
:递归复制整个文件夹案例1:将/home/aaa.txt 拷贝到 /home/bbb目录下:
案例2:将/home/test 整个目录copy到 /home/zwj/
clear
:清屏
cat
:以只读的格式打开文件
more
:分屏显示文件内容,每次只显示一页内容
less
:和上面类似,但对于大型文件具有较高的效率
head
:用于显示文件开头部分内容
tail
:用于输出文件尾部的内容
echo
:输出内容到控制台
ln
:软连接,类似于windows的快捷方式
1.2搜索查找类
find
:
从指定的目录下递归的查找各个子目录,将满足条件的文件或者目录显示在终端上
选项 | 功能 |
---|---|
-name | 按照指定文件名查找文件 |
-user | 查找属于指定用户的所有文件 |
-size | 按照指定文件大小查找文件 |
案例1:按照文件名,根据名称查找/home目录下的hello.txt
案例2:按照拥有者,查找/opt目录下的,用户名称为nodody的文件
案例3:查找Linux系统下大于20M的文件
案例4:查找 / 目录下所有的.txt的文件
locate
:
快速定位文件路径
特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
案例:定位hello.txt文件的所在目录
grep
:过滤查找
管道符,”|”,表示将前一个命令的处理结果输出传递给后面的命令处理
-n | 显示匹配行和行号 |
---|---|
-i | 忽略字母大小写 |
案例1:请在hello.txt文件中,查找“yes“所在行,并且显示行号
1.3压缩和解压类
以后补上,看尚硅谷老师的课
1.4 Vim&查看文章
查看的常用命令
空格键
:显示下一屏Enter键
:一次滚动一行b
:回滚一屏f
:前滚一屏q
:退出Tab
:自动补全(若有歧义在按一下,提示可能有的目录)ctrl+c
:退出选择,重新回到终端通配符的使用
例子:LS 5.txt (也可以不加后缀名); LS \3**
:代表任意一个字符?
:代表任意一个字符,至少一个[]
:表示可以匹配字符组的任意一个[]
:匹配a,b,c中的任意一个[a-f]
:匹配a到f中的任意一个ctrl+s
:保存文件(文件如多有一个*说明这个文件没有被保存)
man是manual的缩写,是linux提供的手册
第二章 实操类 进程管理
ps
:查看进程的使用指令
一般使用的参数是 ps -aux
PID | 进程识别号 |
---|---|
TTY | 终端机号 |
TIME | 此进程所消耗的CPU时间 |
CMD | 正在执行的命令或者进程名 |
ps -a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进行信息
ps -x:显示后台进程运行的参数
ps -ef:以全格式显示当前的所有进程
kill
:终止进程
kill [进程号],killall,也可以使用通配符
-9:表示强迫进程立即停止
案例1:踢掉某个非法登录用户
案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务
案例3:终止多个gedit编辑器
killall gedit
案例4:强制杀掉一个终端
pstree:查看进程树
-p:显示进程PID
-u:显示进程的所有属性
Service
:服务管理
服务本质就是进程,只是运行在后台,通常会监听某个端口,等待其他程序请求,比如(mysql,sshd 防火墙等),因此我们又称为守护线程,是Linux中非常重要的知识点
在centos7.0以后,不在使用service,而是systemctl
使用案例:查看当前防火墙状态,关闭防火墙和重启防火墙
/etc/init.d/服务名称
服务的运行级别:
chkconfig
为每个服务的各个运行级别设置自启动/关闭
top
动态监控进程
top与ps命令很相似,都是用来显示正在执行的进程,top的不同在于可以更新正在运行的进程
-d | 指定top命令每隔几秒钟更新,默认是3秒 |
---|---|
-i | 使top不显示闲置和僵死的进程 |
-p | 通过指定监控进程ID来仅仅监控某个进程 |
-u | 后加用户名即可查看指定的用户 |
监控特定用户:
输入top后,回车查看进程,然后输入“k”回车,在输入要结束的进程ID号
netstat
查看系统网络情况
-an | 按照一定排列顺序输出 |
---|---|
-p | 显示哪个进程在调用 |
查看系统所有的网络服务
查看服务名为sshd的服务信息
之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:
1.netstat -anp |grep 端口号
如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:
图1
图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。
2.netstat -nultp(此处不用加端口号)
该命令是查看当前所有已经使用的端口情况,如图2:
软连接和硬链接
软连接:(符号连接)等同于Windows的快捷方式
创建一个软连接
注意创建的语法:ln -s
是必须的,然后后面跟一个目标文件夹,最后是一个当前目录的软连接名。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[root@server6 ~]# ln -s test_chk/ test_chk_ln
[root@server6 ~]# ll
总用量 84
-rw-------. 1 root root 1257 6月 16 01:17 anaconda-ks.cfg
drwxr-xr-x. 25 root root 4096 11月 1 10:28 azkabanJob
-rw-r--r--. 1 root root 67322 11月 4 10:24 azkabanJob.zip
drwxr-xr-x. 4 root root 37 7月 13 11:01 hadoop_temp
-rw-r--r--. 1 root root 54 7月 4 14:11 HelloLinux.txt
drwxr-xr-x. 2 root root 22 11月 4 10:41 test_chk
lrwxrwxrwx. 1 root root 9 11月 4 10:42 test_chk_ln -> test_chk/
-rw-r--r--. 1 root root 67 10月 8 15:52 zookeeper.out
[root@server6 ~]# cd test_chk_ln/
[root@server6 test_chk_ln]# ll
总用量 4
-rw-r--r--. 1 root root 12 11月 4 10:41 test.txt
[root@server6 test_chk_ln]# cat test.txt
hello spark
[root@server6 test_chk_ln]# ll
总用量 4
-rw-r--r--. 1 root root 12 11月 4 10:41 test.txt
[root@server6 test_chk_ln]# cat test.txt
hello spark可以看到软连接文件前面是l其他都是-,-代表文本文件,d代表是一个文件夹,而l就是连接文件
硬连接:ln 源文件名 连接文件名
硬链接:就好像是copy,但是在linux里面就只有一份,这个文件好像多了几条命,
$$ —- \mathcal{End} —- $$